import os
import requests

class AMapLocation:
    def __init__(self, api_key=None):
        # 优先使用传入的key，否则从环境变量读取
        self.api_key = api_key or os.getenv('AMAP_API_KEY')
        self.base_url = 'https://restapi.amap.com/v3/ip'

    def get_location_by_ip(self, ip=None):
        """
        通过IP获取定位信息。如果不传ip，则自动获取请求方IP。
        :param ip: 可选，指定IP地址
        :return: 定位信息字典
        """
        params = {
            'key': self.api_key
        }
        if ip:
            params['ip'] = ip
        response = requests.get(self.base_url, params=params)
        if response.status_code == 200:
            return response.json()
        else:
            return {'status': '0', 'info': '请求失败', 'error_code': response.status_code}

# 使用示例：
# amap = AMapLocation()  # 自动从环境变量读取key
# result = amap.get_location_by_ip('8.8.8.8')
# print(result)
